
// package comlib

// import chisel3._
// import chisel3.util._

// class ClockReset(
//   val inNum:Int = 1,
//   val oDly:Seq[Int] = Seq(1),
// ) extends Module {

//   class ClockResetIO(val inNum:Int,val outNum:Int) extends Bundle{
//     val in_en = Input(UInt(inNum.W))
//     val out_en = Output(UInt(outNum.W))
//     val thd = Input(UInt(16.W))
//   }

//   val io = IO(new ClockResetIO(inNum,oDly.length))
//   val cnt = RegInit(0.U(16.W))

//   val crst = io.in_en.orR
//   cnt := Mux(crst, 0.U, 
//          Mux(cnt===io.thd, io.thd, cnt+1.U))

//   val clock_en = crst | cnt=/=io.thd

//   for( o <- 0 until oDly.size ){
//     val dly = Pipe(chiselTypeOf(clock_en), oDly(o))
//     dly.io.enq := clock_en
//     io.out_en := dly.io.deq
//   }
// }

